/* 本地图标样式 - 替代Bootstrap Icons */

/* 基础图标样式 */
.icon {
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
    font-family: 'Segoe UI Symbol', 'Segoe UI', Arial, sans-serif;
}

/* 常用图标映射 */
.bi-gear-fill::before,
.bi-gear::before { content: "⚙"; }

.bi-search::before { content: "🔍"; }

.bi-x-lg::before,
.bi-x::before { content: "✕"; }

.bi-grid-3x3-gap-fill::before { content: "▦"; }

.bi-globe::before { content: "🌐"; }

.bi-link-45deg::before { content: "🔗"; }

.bi-arrow-right::before { content: "→"; }

.bi-arrow-left::before { content: "←"; }

.bi-shield-lock-fill::before { content: "🛡"; }

.bi-exclamation-triangle-fill::before { content: "⚠"; }

.bi-box-arrow-in-right::before { content: "📥"; }

.bi-check-circle-fill::before,
.bi-check-circle::before { content: "✓"; }

.bi-database-gear::before,
.bi-database-fill::before { content: "🗄"; }

.bi-wifi::before { content: "📶"; }

.bi-person-fill-gear::before { content: "👤"; }

.bi-info-circle::before { content: "ℹ"; }

.bi-check-lg::before { content: "✓"; }

.bi-memory::before { content: "💾"; }

.bi-file-earmark-zip::before { content: "📁"; }

.bi-server::before { content: "🖥"; }

.bi-question-circle::before { content: "❓"; }

.bi-house-door-fill::before { content: "🏠"; }

.bi-plus-square-fill::before { content: "➕"; }

.bi-list-nested::before { content: "☰"; }

.bi-robot::before { content: "🤖"; }

.bi-cpu::before { content: "💻"; }

.bi-lightbulb::before { content: "💡"; }

.bi-star::before { content: "⭐"; }

.bi-geo-alt::before,
.bi-geo-alt-fill::before { content: "📍"; }

.bi-check-all::before { content: "☑"; }

.bi-x-square::before { content: "☒"; }

.bi-arrow-clockwise::before { content: "🔄"; }

.bi-download::before { content: "⬇"; }

.bi-upload::before { content: "⬆"; }

.bi-trash::before { content: "🗑"; }

.bi-pencil::before { content: "✏"; }

.bi-eye::before { content: "👁"; }

.bi-eye-slash::before { content: "🙈"; }

.bi-plus::before { content: "+"; }

.bi-dash::before { content: "−"; }

.bi-save::before { content: "💾"; }

.bi-folder::before { content: "📂"; }

.bi-file::before { content: "📄"; }

.bi-calendar::before { content: "📅"; }

.bi-clock::before { content: "🕐"; }

.bi-heart::before { content: "❤"; }

.bi-heart-fill::before { content: "♥"; }

.bi-bookmark::before { content: "🔖"; }

.bi-bookmark-fill::before { content: "📌"; }

.bi-share::before { content: "📤"; }

.bi-printer::before { content: "🖨"; }

.bi-envelope::before { content: "✉"; }

.bi-telephone::before { content: "📞"; }

.bi-chat::before { content: "💬"; }

.bi-bell::before { content: "🔔"; }

.bi-volume-up::before { content: "🔊"; }

.bi-volume-mute::before { content: "🔇"; }

.bi-brightness-high::before { content: "☀"; }

.bi-moon::before { content: "🌙"; }

.bi-cloud::before { content: "☁"; }

.bi-umbrella::before { content: "☂"; }

.bi-thermometer::before { content: "🌡"; }

.bi-speedometer::before { content: "⏱"; }

.bi-battery::before { content: "🔋"; }

.bi-wifi-off::before { content: "📵"; }

.bi-bluetooth::before { content: "📶"; }

.bi-camera::before { content: "📷"; }

.bi-image::before { content: "🖼"; }

.bi-music-note::before { content: "♪"; }

.bi-play::before { content: "▶"; }

.bi-pause::before { content: "⏸"; }

.bi-stop::before { content: "⏹"; }

.bi-skip-backward::before { content: "⏮"; }

.bi-skip-forward::before { content: "⏭"; }

.bi-volume-down::before { content: "🔉"; }

.bi-fullscreen::before { content: "⛶"; }

.bi-zoom-in::before { content: "🔍"; }

.bi-zoom-out::before { content: "🔍"; }

.bi-lock::before { content: "🔒"; }

.bi-unlock::before { content: "🔓"; }

.bi-key::before { content: "🔑"; }

.bi-shield::before { content: "🛡"; }

.bi-bug::before { content: "🐛"; }

.bi-tools::before { content: "🔧"; }

.bi-wrench::before { content: "🔧"; }

.bi-hammer::before { content: "🔨"; }

.bi-screwdriver::before { content: "🪛"; }

.bi-nut::before { content: "🔩"; }

.bi-code::before { content: "</>";  }

.bi-terminal::before { content: ">_"; }

.bi-window::before { content: "🪟"; }

.bi-layout-sidebar::before { content: "▤"; }

.bi-layout-three-columns::before { content: "▦"; }

.bi-table::before { content: "⊞"; }

.bi-list::before { content: "☰"; }

.bi-grid::before { content: "▦"; }

.bi-kanban::before { content: "▦"; }

.bi-diagram-2::before { content: "📊"; }

.bi-diagram-3::before { content: "📈"; }

.bi-bar-chart::before { content: "📊"; }

.bi-pie-chart::before { content: "📈"; }

.bi-graph-up::before { content: "📈"; }

.bi-graph-down::before { content: "📉"; }

.bi-trending-up::before { content: "📈"; }

.bi-trending-down::before { content: "📉"; }

.bi-activity::before { content: "📊"; }

.bi-speedometer2::before { content: "⏱"; }

.bi-hourglass::before { content: "⏳"; }

.bi-hourglass-split::before { content: "⌛"; }

.bi-stopwatch::before { content: "⏱"; }

.bi-alarm::before { content: "⏰"; }

.bi-calendar-event::before { content: "📅"; }

.bi-calendar-check::before { content: "📅"; }

.bi-calendar-x::before { content: "📅"; }

.bi-calendar-plus::before { content: "📅"; }

.bi-calendar-minus::before { content: "📅"; }

.bi-calendar2::before { content: "📆"; }

.bi-calendar3::before { content: "🗓"; }

.bi-journal::before { content: "📔"; }

.bi-journal-text::before { content: "📝"; }

.bi-journal-bookmark::before { content: "📖"; }

.bi-book::before { content: "📚"; }

.bi-bookmark-star::before { content: "⭐"; }

.bi-collection::before { content: "📚"; }

.bi-archive::before { content: "📦"; }

.bi-inbox::before { content: "📥"; }

.bi-outbox::before { content: "📤"; }

.bi-reply::before { content: "↩"; }

.bi-reply-all::before { content: "↩"; }

.bi-forward::before { content: "↪"; }

.bi-send::before { content: "📤"; }

.bi-cursor::before { content: "👆"; }

.bi-hand-index::before { content: "👆"; }

.bi-hand-thumbs-up::before { content: "👍"; }

.bi-hand-thumbs-down::before { content: "👎"; }

.bi-emoji-smile::before { content: "😊"; }

.bi-emoji-neutral::before { content: "😐"; }

.bi-emoji-frown::before { content: "☹"; }

.bi-emoji-heart-eyes::before { content: "😍"; }

.bi-emoji-wink::before { content: "😉"; }

.bi-emoji-laughing::before { content: "😂"; }

.bi-emoji-angry::before { content: "😠"; }

.bi-emoji-dizzy::before { content: "😵"; }

.bi-emoji-expressionless::before { content: "😑"; }

.bi-emoji-sunglasses::before { content: "😎"; }

/* 颜色变体 */
.text-primary { color: #0d6efd !important; }
.text-secondary { color: #6c757d !important; }
.text-success { color: #198754 !important; }
.text-danger { color: #dc3545 !important; }
.text-warning { color: #ffc107 !important; }
.text-info { color: #0dcaf0 !important; }
.text-light { color: #f8f9fa !important; }
.text-dark { color: #212529 !important; }
.text-muted { color: #6c757d !important; }

/* 间距辅助类 */
.me-1 { margin-right: 0.25rem !important; }
.me-2 { margin-right: 0.5rem !important; }
.me-3 { margin-right: 1rem !important; }
.ms-1 { margin-left: 0.25rem !important; }
.ms-2 { margin-left: 0.5rem !important; }
.ms-3 { margin-left: 1rem !important; }

/* 特殊样式 */
.search-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(255, 255, 255, 0.8);
    font-size: 1.1rem;
}

/* NavMenu 特殊图标 */
.bi-house-door-fill-nav-menu::before { content: "🏠"; }
.bi-plus-square-fill-nav-menu::before { content: "➕"; }
.bi-list-nested-nav-menu::before { content: "☰"; } 